package com.cruelbb.wonderful2025.algo.sort;

public class SelectionSort {
    /**
     * 选择排序
     * 每次找到最小的放到已经排好的数组后面，直到整个数组都排好。
     * 从index=0开始，每次找出最小的元素，最后将最小的放到index=0的位置，
     * 然后从index=1开始，找出最小的元素，放到index=1的位置，以此类推。
     *
     * 如果数组为[0, n]
     * 需要挨个找到最小的然后放到指定的索引下  [0, n-1]  n就不需要在找了  直接就是最大的了
     *
     */
    public static void selectionSort(int[] arr) {
        int length = arr.length;
        for (int i = 0; i < length - 1; i++) {
            int minIndex = i;
            for (int j = i + 1; j < length; j++) {
                if (arr[minIndex] > arr[j]) {
                    minIndex = j;
                }
            }
            int swap = arr[i];
            arr[i] = arr[minIndex];
            arr[minIndex] = swap;
        }
    }
}
